const loadGruntTasks = require('load-grunt-tasks')

modult.exports = grunt => {
    grunt.initConfig({
        sass:{
            options: {
                sourceMap: true, //编译过程中自动生成 map 文件
                implementation: sass
            },
            main:{
                files: {
                    'dist/css/main.css': 'src/sass/mian.scss'
                }
            }
        },
        babel: {
            options: {
                sourceMap: true, //编译过程中自动生成 map 文件
                presets: ['@babel/preset-env']
            },
            main: {
                files: {
                    'dist/js/app.js': 'src/js/app.js'
                }
            }
        },
        watch: {
            js: {
                files: ['src/js/*.js']
                tasks: ['babel']
            },
            css: {
                files: ['src/scss/*.scss']
                tasks: ['sass']
            }
        }
    })
    loadGruntTasks(grunt) // 会自动加载所有的 grunt 插件中的任务
    // watch 启动后不会直接启动 sass 和 babel对应的任务，只会监视文件，一旦文件发生变化才会执行
    // 这也代表 watch 一开始并不执行 sass 和 babel
    //一般会给 watch 做个映射
    grunt.registerTasks('defalut', ['sass', 'babel', 'watch']) //确保在启动的时候就会执行 sass 和 babel ,然后再监听
}